{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "d2847a30",
   "metadata": {},
   "source": [
    "### 购物车程序项目 要求：\n",
    "- 1.运行程序之后，让用户输入（input变量=字符串）支付宝余额，然后打印（print:占位符）我们的商品列表（至少有两个属性：价格）给用户。\n",
    "- 2.让用户输入商品编号进行商品的购买。 \n",
    "- 3.用户选择商品后，检查用户的余额是否够，若够则直接扣款，不够则体系用户。 \n",
    "- 4.用户可以随时退出购买，退出时打印用户已购买的商品和支付宝余额。\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "63a7944f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "请输入您的余额：88\n",
      "-------商品列表信息-------\n",
      "商品编号：0, 商品的名称：珍珠奶茶, 商品价格：7元\n",
      "商品编号：1, 商品的名称：大杯珍珠奶茶, 商品价格：7元\n",
      "商品编号：2, 商品的名称：加大杯珍珠奶茶, 商品价格：7元\n",
      "商品编号：3, 商品的名称：桶装珍珠奶茶, 商品价格：7元\n",
      "请输入正确的商品编号购买：1\n",
      "【大杯珍珠奶茶】已经加入您的购物车，您的【余额】还有79.5元\n",
      "-------商品列表信息-------\n",
      "商品编号：0, 商品的名称：珍珠奶茶, 商品价格：7元\n",
      "商品编号：1, 商品的名称：大杯珍珠奶茶, 商品价格：7元\n",
      "商品编号：2, 商品的名称：加大杯珍珠奶茶, 商品价格：7元\n",
      "商品编号：3, 商品的名称：桶装珍珠奶茶, 商品价格：7元\n",
      "请输入正确的商品编号购买：3\n",
      "【桶装珍珠奶茶】已经加入您的购物车，您的【余额】还有59.5元\n",
      "-------商品列表信息-------\n",
      "商品编号：0, 商品的名称：珍珠奶茶, 商品价格：7元\n",
      "商品编号：1, 商品的名称：大杯珍珠奶茶, 商品价格：7元\n",
      "商品编号：2, 商品的名称：加大杯珍珠奶茶, 商品价格：7元\n",
      "商品编号：3, 商品的名称：桶装珍珠奶茶, 商品价格：7元\n",
      "请输入正确的商品编号购买：7\n",
      "【您输入的商品不存在，请检查再次输入~】\n",
      "-------商品列表信息-------\n",
      "商品编号：0, 商品的名称：珍珠奶茶, 商品价格：7元\n",
      "商品编号：1, 商品的名称：大杯珍珠奶茶, 商品价格：7元\n",
      "商品编号：2, 商品的名称：加大杯珍珠奶茶, 商品价格：7元\n",
      "商品编号：3, 商品的名称：桶装珍珠奶茶, 商品价格：7元\n",
      "请输入正确的商品编号购买：0\n",
      "【珍珠奶茶】已经加入您的购物车，您的【余额】还有52.5元\n",
      "-------商品列表信息-------\n",
      "商品编号：0, 商品的名称：珍珠奶茶, 商品价格：7元\n",
      "商品编号：1, 商品的名称：大杯珍珠奶茶, 商品价格：7元\n",
      "商品编号：2, 商品的名称：加大杯珍珠奶茶, 商品价格：7元\n",
      "商品编号：3, 商品的名称：桶装珍珠奶茶, 商品价格：7元\n",
      "请输入正确的商品编号购买：q\n",
      "您的购物车： [['大杯珍珠奶茶', 8.5], ['桶装珍珠奶茶', 20], ['珍珠奶茶', 7]] \n",
      " 您的账户余额：52.5 元\n"
     ]
    }
   ],
   "source": [
    "goods_list = [\n",
    "    # 商品的样式[商品名称,商品价格]，\n",
    "    ['珍珠奶茶',7],\n",
    "    ['大杯珍珠奶茶',8.5],\n",
    "    ['加大杯珍珠奶茶',9.5],\n",
    "    ['桶装珍珠奶茶',20],\n",
    "]\n",
    "\n",
    "# 写到某一步，发现前面需要内容。可以优化增加\n",
    "user_shopping_cart = []# 用户列表初始为空，后续用append进行增加\n",
    "\n",
    "# 用户输入：input\n",
    "Alipay = int(input(\"请输入您的余额：\"))\n",
    "\n",
    "# 打印商品信息，打印商品次数是由商品列表的长度决定的（len(goods_list)）\n",
    "while True:# 将实现 过程 的循环\n",
    "    print(\"-------商品列表信息-------\")\n",
    "    for i in range(len(goods_list)):\n",
    "        # 给格式化的样式（先给）\n",
    "        # 样式（不懂代码的人可以完成的工作）\n",
    "        # \"商品编号：xx,商品的名称：xx,商品价格：xx\"\n",
    "        print(\"商品编号：%s, 商品的名称：%s, 商品价格：%s元\"%(i,goods_list[i][0],goods_list[0][1]))\n",
    "    # 2.让用户输入商品编号进行商品购买。\n",
    "    # 用户输入商品编码\n",
    "    choice = input(\"请输入正确的商品编号购买：\")# \"36\"\n",
    "    if choice.isdigit():# isdigit 判断字符串是否是数值\n",
    "        choice = int(choice)# 如果是数值，把它变成真正的int\n",
    "    # 判断商品编号是否在 我们的范围内\n",
    "        if choice > len(goods_list):\n",
    "            print(\"【您输入的商品不存在，请检查再次输入~】\")\n",
    "        else:\n",
    "            # 对比商品编码，找到对应商品：商品价格：goods_list[choice][1],\n",
    "            # 检查用户余额和商品价格关系\n",
    "            if Alipay > goods_list[choice][1]:\n",
    "                # 买得起1。扣钱，2，把商品加到商品购物列表\n",
    "                Alipay = Alipay - goods_list[choice][1]\n",
    "                user_shopping_cart.append(goods_list[choice])\n",
    "                print(\"【%s】已经加入您的购物车，您的【余额】还有%s元\"%(goods_list[choice][0],Alipay))\n",
    "            else:\n",
    "                print(\"您的余额不足以购买，请更换支付方式\")\n",
    "    elif choice == \"q\":\n",
    "        # 如果用户输入q，说明用户要求要退出购买了，我们将打印已购买的商品列表 以及 用户余额\n",
    "        print(\"您的购物车：\",user_shopping_cart,'\\n',\"您的账户余额：%s 元\"%(Alipay))\n",
    "        break\n",
    "    else:\n",
    "            print(\"请输入正确的【商品编码】！！或者按照输入提示进行输入\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "7993de27",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "53d1e221",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
